<?php
/**
* 任务日志类
 */

class taskLog {

    public function searchTaskLogList(&$arg_array){

        global $G_SHOP;

        //sql字符串
        $sql = '';

        //参数类型字符串
        $params_type = '';

        //参数值数组
        $params_array = array();

        //任务ID
        if (isset($arg_array['task_id']) && is_numeric($arg_array['task_id'])) {
            $sql .= ' AND task_id = ?';
            $params_type .= 'i';
            $params_array[] = $arg_array['task_id'];
        }

        //任务名称
        if (isset($arg_array['name']) && !empty($arg_array['name'])) {
            $sql .= ' AND name = ?';
            $params_type .= 's';
            $params_array[] = $arg_array['name'];
        }

        //创建开始时间
        if (isset($arg_array['startDate']) && !empty($arg_array['startDate']) ){
            $sql .= ' AND createTime > ?';
            $params_type .= 's';
            $params_array[] = $arg_array['startDate'] . ' 00:00:00';
        }

        //创建结束时间
        if (isset($arg_array['endDate']) && !empty($arg_array['endDate']) ){
            $sql .= ' AND createTime < ?';
            $params_type .= 's';
            $params_array[] = $arg_array['endDate'] . ' 23:59:59';
        }

        //创建人
        if(isset($arg_array['creator']) && !empty($arg_array['creator'])){
            $sql .= ' AND creator = ?';
            $params_type .= 's';
            $params_array[] = $arg_array['creator'];
        }

        //日志级别   0:正常日志 1:警告 2:异常 9:致命错误(发短信通知)
        if (isset($arg_array['level']) && in_array($arg_array['level'], array(0 ,1 ,2 ,9))) {
            $sql .= ' AND level = ?';
            $params_type .= 'i';
            $params_array[] = $arg_array['level'];
        }

        //日志异常信息
        if(isset($arg_array['message']) && is_numeric($arg_array['message'])){
            $sql .= ' AND message = ?';
            $params_type .= 's';
            $params_array[] = $arg_array['message'];
        }

        if (isset($arg_array['extend']) && !empty($arg_array['extend'])) {
            $sql .= $arg_array['extend'];
        }

        if ($sql) {
            $sql = 'WHERE ' . substr($sql, 4);
        }

        if (isset($arg_array['rp'])) {

            //统计数量
            $search_sql = 'SELECT COUNT(*) AS item_count FROM log_task ' . $sql;
            $count_array = &$G_SHOP->DBCA->stmt_query($search_sql, $params_type, $params_array);
            $item_count = $count_array[0]->item_count;
            if ($item_count == 0) {
                $arg_array['count'] = 0;
                return null;
            }

            $arg_array['count'] = $item_count;


            //排序
            if (isset($arg_array['sortname']) && !empty($arg_array['sortname']))
                $sql .= sprintf(' ORDER BY %s %s', $arg_array['sortname'], $arg_array['sortorder']);

            //分页
            if (!isset($arg_array['page']) || !is_numeric($arg_array['page']) || $arg_array['page'] <= 0)
                $arg_array['page'] = 1;

            $sql .= sprintf(' LIMIT %d, %d', ($arg_array['page'] - 1) * $arg_array['rp'], $arg_array['rp']);

        } else {

            //排序
            if (isset($arg_array['sortname']) && !empty($arg_array['sortname']))
                $sql .= sprintf(' ORDER BY %s %s', $arg_array['sortname'], $arg_array['sortorder']);

        }

        //查询日志信息
        $search_sql = 'SELECT * FROM log_task ' . $sql;

        $temp_item_array = &$G_SHOP->DBCA->stmt_query($search_sql, $params_type, $params_array);
        if (!$temp_item_array)
            return null;

        $item_array = array();
        foreach($temp_item_array as &$item){
            $item_array[] = array(
                'task_id' => $item->task_id,
                'creator' => $item->creator,
                'name' =>$item->name,
                'message' =>$item->message,
                'level' =>$item->level,
                'createTime' =>$item->createTime,
                'createDate' => date( 'Y-m-d',strtotime($item->createTime) ),
            );
        }

        return $item_array;

    }
}


?>